var _ = require("lodash");

// 减少嵌套层数，这里有3个相关的方法
// _.flatten(array);
// 减少一级嵌套
let arr = [1, [2, [3, [4]], 5]];
let a = _.flatten(arr);
// console.log(a);

// _.flattenDeep(array)
// 将array递归为一维数组,不管有多少层
let b = _.flattenDeep(arr);
// console.log(b);

// _.flattenDepth(array, [depth=1])
// 根据第二个参数，减少嵌套层级
let c = _.flattenDepth(arr, 2);
// console.log(c);

let d = _.flattenDepth(arr, 3);
// console.log(d);

// 跟数组原生的flat方法基本效果一致
// 参数是扁平化的深度，默认是1 使用Infinity可以展开任意层级
let e = arr.flat();
console.log(e);

let f = arr.flat(2);
console.log(f);

let g = arr.flat(Infinity);
console.log(g);
